package com.jz.netthings.analysis.mapper;

import com.baomidou.mybatisplus.plugins.Page;
import com.jz.netthings.analysis.bean.ProviderRoundBase;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.jz.netthings.support.AdscmPage;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 供浆者轮次表的基础统计数据 Mapper 接口
 * </p>
 *
 * @author yangyunyun
 * @since 2019-07-16
 */
public interface ProviderRoundBaseMapper extends BaseMapper<ProviderRoundBase> {

    /**
     *
     * 查询某个浆员某个时间段的所有献浆量（袋）
     * @param providerId 浆员ID
     * @param beginTime 开始时间
     * @param endTime 结束时间
     * @return
     */
    int selectProviderCollNum(@Param("providerId") Long providerId, @Param("beginTime") String beginTime, @Param("endTime") String endTime);

    /**
     * 查询村落指定日期登记浆员的轮次信息
     * @param villageName
     * @param beginTime
     * @param endTime
     * @param isNew
     * @return
     */
    List<ProviderRoundBase> selectRoundBaseByRegDate(@Param("villageName")String villageName, @Param("beginTime") String beginTime, @Param("endTime") String endTime,@Param("isNew") String isNew);


    /**
     * 分页查询某个村落的所有浆员的轮次信息
     * @param page
     * @return
     */
    List<ProviderRoundBase> selectVillAllProviderRoundByPage(@Param("page") AdscmPage<ProviderRoundBase> page);

    /**
     * 某个村落的所有浆员的轮次信息总条数
     * @param condition
     * @return
     */
    int selectVillAllProviderRoundCount(@Param("condition")Map<String, Object> condition);

    /**
     * 分页查询某个村落的今年已进站的浆员的轮次信息
     * @param page
     * @return
     */
    List<ProviderRoundBase> selectVillThisYearComedRoundByPage(@Param("page") AdscmPage<ProviderRoundBase> page);
    /**
     * 查询某个村落的今年已进站的浆员的轮次信息总条数
     * @param page
     * @return
     */
    int selectVillThisYearComedRoundCount(@Param("page") AdscmPage<ProviderRoundBase> page);

    /**
     * 分页查询某个村落忠诚浆员的轮次信息
     * @param page
     * @return
     */
    List<ProviderRoundBase> selectVillZcProviderRoundByPage(@Param("page")AdscmPage<ProviderRoundBase> page);

    /**
     * 查询某个村落忠诚浆员的轮次信息总条数
     * @param page
     * @return
     */
    int selectVillZcProviderRoundCount(@Param("page")AdscmPage<ProviderRoundBase> page);
    /**
     * 分页查询某个村落复苏浆员的轮次信息
     * @param page
     * @return
     */
    List<ProviderRoundBase> selectVillFusuProviderRoundByPage(@Param("page")AdscmPage<ProviderRoundBase> page);
    /**
     * 查询某个村落复苏浆员的轮次信息总条数
     * @param page
     * @return
     */
    int selectVillFusuProviderRoundCount(@Param("page")AdscmPage<ProviderRoundBase> page);

    /**
     * 分页查询今年新浆员轮次信息
     * @param page
     * @return
     */
    List<ProviderRoundBase> selectVillNewProviderRoundByPage(@Param("page")AdscmPage<ProviderRoundBase> page);

    List<ProviderRoundBase> selectVillCurrentTimeNotComedRoundByPage(@Param("page")AdscmPage<ProviderRoundBase> page);

    List<ProviderRoundBase> selectVillXiuMianRoundByPage(@Param("page") AdscmPage<ProviderRoundBase> page);
}
